import { createApp } from 'vue';
// 引入 element-plus
import ElementPlus from 'element-plus';
// 引入 sibionics-ui-next
import sibionics from 'sibionics-ui-next';
// 引入 element-plus 图标库
import * as ElementPlusIconsVue from '@element-plus/icons-vue';

import App from './App';
import router from './router';
import store from './store';
import plugins from './plugins';
import { i18n } from './locale/index';
import './assets/styles/index';

const app = createApp(App);

/** 全局注册 axios 以保证组件内部的自动请求接口获取数据的相关功能正常运行 */
// 方式一：将 axios 注册为全局提供者，命名名称为 $axios
app.provide('$axios', plugins.axios);
// 方式二：将 axios 挂载在 app 原型上，命名名称为 $axios
// app.config.globalProperties.$axios = plugins.axios;


/** 全局注册 i18n 以保证组件内部的国际化相关功能正常运行 */
// 方式一：将 i18n.global 注册为全局提供者，命名名称为 $i18n
app.provide('$i18n', i18n.global);
// 方式二：将 i18n.global 挂载在 app 原型上，命名名称为 $i18n
// app.config.globalProperties.$i18n = i18n.global;

// 注册 ElementPlus 图标组件
Object.keys(ElementPlusIconsVue).forEach((key) => app.component(key, ElementPlusIconsVue[key]));

app.use(ElementPlus, { size: 'default' }).use(i18n).use(sibionics, { theme: '#00C4A3' }).use(router).use(store).mount('#app');